/****服务器端接口及底层请求方法二次封装*****/

import {AsyncStorage} from 'react-native';

//服务器基础地址
export let base = 'https://www.codeboy.com/zhsqapi/';

//POST请求公共选项对象
let postOptions = {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
};

/**
 * API-1.1：
 */

/**
 * API-1.2：用户登录
 * 接口地址：user/login
 * 请求方式：POST
 * 请求主体格式：application/json
 * 请求数据说明：
 *   名称	必填	类型	说明
 *   phone	是	string	手机号
 *   pwd	是	string	密码
 */
export let userLogin = async (phone, pwd) => {
  let url = base + 'user/login';
  //发起异步请求，等待服务器端返回响应消息
  let res = await fetch(url, {
    ...postOptions,
    body: JSON.stringify({phone, pwd}),
  });
  //等待读取完请求主体，再进行JSON解析
  let data = await res.json();
  return data;
};

/**
 * API-7.1、商城首页数据
 * 接口地址：mall/index
 * 请求方式：GET
 * 请求参数：无
 * 请求头部：token - 用户登录后保存在客户端身份凭证
 */
export let mallIndex = async () => {
  let url = base + 'mall/index';
  //读取保存在客户端的Token
  let token = await AsyncStorage.getItem('userToken');
  //发起异步请求，等待服务器端返回响应消息
  let res = await fetch(url, {
    headers: {token}, //请求头部携带客户端的身份令牌
  });
  //等待读取完请求主体，再进行JSON解析
  let data = await res.json();
  return data;
};
